package gruppe5.dame.model;

import gruppe5.dame.model.types.DameEventType;

/**
 * Der Event der bei Aenderungen an der Spielelogik dem DameModelListener uebergeben wird.
 * @author Martin Eutinger
 *
 */
public class DameModelChangedEvent 
{
	/**
	 * Der Typ des Events.
	 */
	public final DameEventType type;

	/**
	 * Der Konstruktor des DameModelChangedEvent.
	 * @param _type Der Typ des Events.
	 */
	protected DameModelChangedEvent(DameEventType _type) 
	{
		this.type = _type;
	}
	
	/**
	 * @return true falls das Spiel vorbei ist.
	 */
	public boolean isGameOver()
	{
		if((this.type == DameEventType.BLACK_WON) || (this.type == DameEventType.WHITE_WON))
			return true;
		else
			return false;
	}
	
	/**
	 * @return true falls der schwarze Spieler gewonnen hat.
	 */
	public boolean blackHasWon()
	{
		if(this.type == DameEventType.BLACK_WON)
			return true;
		else
			return false;
	}
	
	/**
	 * @return true falls der weisse Spieler gewonnen hat.
	 */
	public boolean whiteHasWon()
	{
		if(this.type == DameEventType.WHITE_WON)
			return true;
		else
			return false;
	}
	
	/**
	 * @return true falls der schwarze Spieler nocheinmal ziehen darf.
	 */
	public boolean blackCanMoveAgain()
	{
		if(this.type == DameEventType.BLACK_MOVES_AGAIN)
			return true;
		else
			return false;
	}
	
	/**
	 * @return true falls der weisse Spieler nocheinmal ziehen darf.
	 */
	public boolean whiteCanMoveAgain()
	{
		if(this.type == DameEventType.WHITE_MOVES_AGAIN)
			return true;
		else
			return false;
	}
	
}
